package com.dhgate.spu.analysis.bean;

import java.util.List;
import java.util.Map;
import java.util.Set;

/** 
 * @author:      wangguodong 
 * @create:      2014-3-6 上午10:08:39 
 * @description: spu标准
 */
public class SpuStandard {
	private String id;
	private List<Long> attrIdList; //此spu标准要使用的标准属性（在数据库中确实存在的属性） id按照升序排序
	private List<Long> attrIdSelect;//此spu标准中需要查询的属性，因为可能会出现属性关键属性，或者过滤属性不在spu中
	private Map<Long,Set<Long>> abandonMap;//此为spu要忽略的属性对应的属性值
	private Map<Long,Set<Long>> keyMap;//此spu的关键属性和属性值，缺一不可
	private Map<Long,Set<Long>> validMap;//次spu 有效的属性的属性值，属性值在此属性set的才有效，进行归总
	//private List<Long> keyAttrValIdList;//此spu规则针对的属性值id(只有全包含此属性值的item才使用此规则）
	//private List<Long> abandonAttrValIdList;//此spu规则要忽略的属性值（如果属性值被这个list包含，则直接舍去此属性值再计算）
	private ExtractKeyword extractKeyword;//抽取关键词规则
	private List<String> extFieldList;//非数据库属性，比如手机频道的型号是从标题中提取的，数据库中其实不存在
	
	
//	public List<Long> getKeyAttrValIdList() {
//		return keyAttrValIdList;
//	}
//	public void setKeyAttrValIdList(List<Long> keyAttrValIdList) {
//		this.keyAttrValIdList = keyAttrValIdList;
//	}
//	public List<Long> getAbandonAttrValIdList() {
//		return abandonAttrValIdList;
//	}
//	public void setAbandonAttrValIdList(List<Long> abandonAttrValIdList) {
//		this.abandonAttrValIdList = abandonAttrValIdList;
//	}

	public String getId() {
		return id;
	}
	public void setId(String id) {
		this.id = id;
	}
	public List<Long> getAttrIdList() {
		return attrIdList;
	}
	public void setAttrIdList(List<Long> attrIdList) {
		this.attrIdList = attrIdList;
	}
	public List<String> getExtFieldList() {
		return extFieldList;
	}
	public void setExtFieldList(List<String> extFieldList) {
		this.extFieldList = extFieldList;
	}
	/**
	 * @return the attrIdSelect
	 */
	public List<Long> getAttrIdSelect() {
		return attrIdSelect;
	}
	/**
	 * @param attrIdSelect the attrIdSelect to set
	 */
	public void setAttrIdSelect(List<Long> attrIdSelect) {
		this.attrIdSelect = attrIdSelect;
	}
	
	/**
	 * @return the abandonMap
	 */
	public Map<Long, Set<Long>> getAbandonMap() {
		return abandonMap;
	}
	/**
	 * @param abandonMap the abandonMap to set
	 */
	public void setAbandonMap(Map<Long, Set<Long>> abandonMap) {
		this.abandonMap = abandonMap;
	}
	/**
	 * @return the keyMap
	 */
	public Map<Long, Set<Long>> getKeyMap() {
		return keyMap;
	}
	/**
	 * @param keyMap the keyMap to set
	 */
	public void setKeyMap(Map<Long, Set<Long>> keyMap) {
		this.keyMap = keyMap;
	}
	/**
	 * @return the extractKeywor
	 */
	public ExtractKeyword getExtractKeyword() {
		return extractKeyword;
	}
	/**
	 * @param extractKeywor the extractKeywor to set
	 */
	public void setExtractKeyword(ExtractKeyword extractKeyword) {
		this.extractKeyword = extractKeyword;
	}
	/**
	 * @return the validMap
	 */
	public Map<Long, Set<Long>> getValidMap() {
		return validMap;
	}
	/**
	 * @param validMap the validMap to set
	 */
	public void setValidMap(Map<Long, Set<Long>> validMap) {
		this.validMap = validMap;
	}
	
}
